# Copyright (C) Kumo inc. and its affiliates.
# Author: Jeff.li lijippy@163.com
# All rights reserved.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <https:#www.gnu.org/licenses/>.
#


kmcmake_cc_test(
        NAME core_test
        MODULE vector
        SOURCES
        copy_preserve_encodings_test.cpp
        decoded_vector_test.cpp
        encoded_vector_copy_test.cpp
        encoding_test.cpp
        ensure_writable_vector_test.cpp
        is_writable_vector_test.cpp
        lazy_vector_test.cpp
        may_have_nulls_recursive_test.cpp
        selectivity_vector_test.cpp
        string_vector_buffer_test.cpp
        variant_to_vector_test.cpp
        vector_compare_test.cpp
        vector_estimate_flat_size_test.cpp
        vector_maker_test.cpp
        vector_pool_test.cpp
        vector_prepare_for_reuse_test.cpp
        vector_printer_test.cpp
        vector_saver_test.cpp
        vector_stream_test.cpp
        vector_test.cpp
        vector_test_utils.cpp
        vector_to_string_test.cpp
        CXXOPTS
        ${KMCMAKE_CXX_OPTIONS}
        -fno-access-control
        LINKS
        pollux::pollux_static
        pollux::pollux_testing_static
        GTest::gtest
        GTest::gtest_main
        ${KMCMAKE_DEPS_LINK}
)

kmcmake_cc_test(
        NAME simple_test
        MODULE vector
        SOURCES
        simple_vector_test.cpp
        to_string_utility_test.cpp
        CXXOPTS
        ${KMCMAKE_CXX_OPTIONS}
        -fno-access-control
        LINKS
        pollux::pollux_static
        pollux::pollux_testing_static
        GTest::gtest
        GTest::gtest_main
        ${KMCMAKE_DEPS_LINK}
)



kmcmake_cc_test(
        NAME bias_test
        MODULE vector
        SOURCES
        bias_vector_test.cpp
        CXXOPTS
        ${KMCMAKE_CXX_OPTIONS}
        -fno-access-control
        LINKS
        pollux::pollux_static
        pollux::pollux_testing_static
        GTest::gtest
        GTest::gtest_main
        ${KMCMAKE_DEPS_LINK}
)

kmcmake_cc_test(
        NAME fuzzer_test
        MODULE vector
        SOURCES
        vector_fuzzer_test.cpp
        CXXOPTS
        ${KMCMAKE_CXX_OPTIONS}
        -fno-access-control
        LINKS
        pollux::pollux_static
        pollux::pollux_testing_static
        GTest::gtest
        GTest::gtest_main
        ${KMCMAKE_DEPS_LINK}
)

kmcmake_cc_test(
        NAME constrained_generator_test
        MODULE vector
        SOURCES
        constrained_vector_generator_test.cpp
        CXXOPTS
        ${KMCMAKE_CXX_OPTIONS}
        -fno-access-control
        LINKS
        pollux::pollux_static
        pollux::pollux_testing_static
        GTest::gtest
        GTest::gtest_main
        ${KMCMAKE_DEPS_LINK}
)

kmcmake_cc_test(
        NAME arrow_bridge_test
        MODULE vector
        SOURCES
        arrow_bridge_array_test.cpp
        arrow_bridge_schema_test.cpp
        CXXOPTS
        ${KMCMAKE_CXX_OPTIONS}
        -fno-access-control
        LINKS
        pollux::pollux_static
        pollux::pollux_testing_static
        GTest::gtest
        GTest::gtest_main
        ${KMCMAKE_DEPS_LINK}
)